Application Development Features
Although
some basic Web sites can meet their requirements by using only static
content, it’s far more common for production sites to require dynamic
Web services and Web application support. IIS has been designed to
support a broad array of different features and technologies to support
these requirements. The list of Application Development role services
includes:
ASP.NET is the primary Microsoft Web server development platform. It is
based on the .NET Framework and provides a powerful and flexible
development framework for handling common Web site design tasks.
Features include built-in support for managing access to databases,
security and authorization methods, and reliability and scalability
features.
.NET Extensibility
The Microsoft .NET Framework programming platform can be used to make
modifications to IIS Web server functionality. This role service
enables developers to access the IIS management namespaces and objects
for building logic that interacts with Web server requests.
ASP
Active Server Pages (ASP) technology is the predecessor to the ASP.NET
platform. ASP provided a simplified, script-based method of developing
Web-based applications. ASP scripts run on the Web server and generate
HTML content that is passed back to the user through IIS. Support for
ASP is provided primarily for backward compatibility with applications
that have not yet been moved to the ASP.NET platform.
CGI
The Common Gateway Interface (CGI) is a standard that defines how Web
servers can pass information to programmatic scripts. It is required by
some server-side components, especially those that have been written to
run on multiple Web server platforms. Web development languages such as
PHP: Hypertext Preprocessor (PHP) rely on CGI support within the Web
server. IIS 7.0 includes features that can improve the performance of
CGI processing significantly.
ISAPI extensions
IIS supports an extensibility standard known as the Internet Server
Application Programming Interface (ISAPI). By building ISAPI
extensions, Web developers can
create their own content handlers that can interact with every aspect
of the Web request pipeline. The ISAPI standard is designed to provide
scalability for supporting many simultaneous requests.
ISAPI filters
ISAPI filters are custom code that developers can create to process
specific Web server requests. The logic can receive Web request details
and return the appropriate content based on server-side logic. IIS
attempts to match Web requests with the most appropriate ISAPI filter
for handling that type of content. Enabling this role service allows
developers to add custom ISAPI filters to IIS.
Server Side Includes
Web designers can often benefit from having the ability to embed
certain common content on all their Web pages. Examples include a site
header, navigation elements, and site footers. The Server Side Includes
role service enables the Web server to include other pieces of content
when generating a Web server request. For security reasons, this
feature is disabled by default. However, sites that do not rely on
other Web development technologies (such as ASP.NET) might require this
capability.
When
planning to deploy production Web sites, determine which additional
features should be enabled. This information is usually available from
the Web application development team or organization.
Health and Diagnostics Features
Although
basic Web server functionality can appear simple, there are numerous
steps that must be performed during the processing of a typical Web
request. Organizations that depend on their Web servers for access to
critical information and systems need a method of isolating and
troubleshooting any problems that might occur. Role services that are
included in the Health and Diagnostics features section are designed to
help administrators and developers collect and analyze information
about Web requests.
A
common challenge with monitoring Web sites is managing the volume of
information that is generated. The process of recording in-depth
details about all requests can add a significant level of performance
overhead to production systems. To help address this issue, IIS 7.0
includes enhanced features for collecting details on specific requests
and for configuring which information should be collected. The specific
role services are:
HTTP Logging
The most basic form of logging in IIS is to store HTTP request
information within text files on the server’s file system. HTTP logging
enables this functionality, along with a set of default settings for
logging requests. Details can be customized by accessing the properties
of each Web site. The default location for log files is %SystemDrive%\Inetpub\Logs\LogFiles. Figure 3 shows a list of fields that can be included in the log files.
Logging Tools Raw
HTTP request logs are difficult to view and analyze manually. On busy
Web servers, the files can get extremely large quickly. Because the
content typically is organized with a single row per request,
administrators might need to search through thousands of rows to get
the information they need. The Logging Tools role service provides
simple utilities for accessing and analyzing log files.
Request Monitor
A common difficulty with diagnosing performance-related issues on a Web
server is that of trying to determine which activity is occurring
currently. The Request Monitor feature enables administrators to see
which requests are executing within the Web server process currently.
This can help isolate the potential source of slowdowns or loss of
service due to long-running requests or other issues.
Tracing
When an error or performance-related issue occurs on a Web server, it
is useful to collect as much information as possible about the problem.
Unfortunately, due to performance requirements, it’s usually
impractical to store details about all requests. Tracing functionality
enables IIS to store detailed information for any failed requests. This
feature works by keeping information about executing requests in memory
just long enough to determine whether it was successful. If it was not,
the results can be stored on the Web server for later analysis.
Custom Logging
The HTTP Logging feature provides a default text-based format for
storing Web request information. Although this can meet the basic needs
for most Web sites and services, organizations can also create their
own COM-based modules, using the Custom Logging option. Developers will
need to build the logging module and then register it with IIS for it
to store data. This approach provides the greatest flexibility in
determining which details are important to record.
ODBC Logging Although
storing data in a text file is an efficient method of logging requests,
it makes the process of analyzing and reporting on Web server
performance difficult. The ODBC Logging role service enables
applications to store Web request data in any format that is supported
by an Open Database Connectivity (ODBC) connection. Examples include
relational database servers such as Microsoft SQL Server and file-based
formats such as Microsoft Excel. It is important to note, however, that
logging to ODBC-based sources can cause significant processing and
storage overhead, especially on busy Web servers.
Web
administrators often use log analyzer applications to process the
text-based log files that store request information. Details can be
used to isolate problems (such as erroneous links or missing content)
as well as to analyze traffic and the popularity of specific Web pages.